# Gaptcha

A GNU spirited Libre Captcha

Dependencies : JQuery, JQuery-UI

Logic : There are 2 things which pose difficulties for bots. Number of actions available, only 4 here yet and the context of the question. 

User Guide : 

1. Clone this repo.
2. Ensure you have jquery.min.js, jquery-ui.min.css, jquery-ui.min.js and images in your static folder
3. Ensure style attributes don't clash with your own styles.
4. From gaptcha.html, copy head contents to your head and body to your body. [Don't trust us. Check that there's no backdoor in them.]
5. Create a div with id="gaptcha" where your final form element will be.
6. Extract form value and check the answer at your backend.
7. Give a star to gaptcha if you found it useful!

Troubleshooting :
1. Ensure your static files are linked correctly and you have jquery before jquery-ui

Contributing : 

1. You can contribute by adding more instances of the captcha which include:
    - A set of images (Should be similar to each other in properties and different for the user)
    - Answer
    - Question posed to the user (Should be a no-brainer)

Guide to framing the question:

The question must be something contextual like "Drag the actor of movie Titanic to the box". This makes things difficult 2-fold for a bot. First, finding the actor, recognizing the image("always keep colored images") and dragging the respective image to the box.

Guide to selecting images:

Image classification is almost a solved task. Due to this, one should prevent having only a single image with high similarity to the words in question.

Future Goals:
1. Having more questions and answers so that users can choose on random from backend.
2. Removing jquery dependency and making it in javascript. (Improbable as I hate javascript)
